IF exists(SELECT * FROM dbo.sysobjects WHERE name='r_jaarOverzichtblad2PDF' AND xtype='FN') 
BEGIN
	DROP FUNCTION r_jaarOverzichtblad2PDF
END
GO

CREATE  function r_jaarOverzichtblad2PDF
(@klasje varchar(5))
returns @resultaten table
(
   klas varchar(5),
   klasNr int,
   voornaam varchar(50),
   achternaam varchar(50),
   inschrijvingsNr char(7),
   v1 varchar(2),DW1 int,EX1 int, TOT1 int,
   v2 varchar(2),DW2 int,EX2 int, TOT2 int,
   v3 varchar(2),DW3 int,EX3 int, TOT3 int,
   v4 varchar(2),DW4 int,EX4 int, TOT4 int,
   v5 varchar(2),DW5 int,EX5 int, TOT5 int,
   v6 varchar(2),DW6 int,EX6 int, TOT6 int,
   v7 varchar(2),DW7 int,EX7 int, TOT7 int,
   v8 varchar(2),DW8 int,EX8 int, TOT8 int,
   v9 varchar(2),DW9 int,EX9 int, TOT9 int,
   v10 varchar(2),DW10 int,EX10 int, TOT10 int,
   v11 varchar(2),DW11 int,EX11 int, TOT11 int,
   v12 varchar(2),DW12 int,EX12 int, TOT12 int,
   v13 varchar(2),DW13 int,EX13 int, TOT13 int,
   v14 varchar(2),DW14 int,EX14 int, TOT14 int,
   v15 varchar(2),DW15 int,EX15 int, TOT15 int,
   v16 varchar(2),DW16 int,EX16 int, TOT16 int,
   v17 varchar(2),DW17 int,EX17 int, TOT17 int,
   v18 varchar(2),DW18 int,EX18 int, TOT18 int,
   v19 varchar(2),DW19 int,EX19 int, TOT19 int,
   v20 varchar(2),DW20 int,EX20 int, TOT20 int
)
as
begin

declare @jaarcijfers table (
inschrijvingsNr char(7),
vak char(2),
DWprocent int,EXprocent int, TOTprocent int)

declare KlasCursor cursor local for 
select distinct klas
  from leerlingen..leerlingen 
 where klas like @klasje order by klas
for read only
declare @klas varchar(5)


open KlasCursor
fetch next from KlasCursor into @klas
while (@@fetch_status=0)
begin

-- Invoegen van de namen van de leerlingen
insert into @resultaten(klas,klasNr,voornaam,achternaam,inschrijvingsNr)
select klas,klasNr,voornaam,achternaam,inschrijvingsNr
from leerlingen..leerlingen
  where klas = @klas

-- Aanvullen van de namen van de vakken in de juiste volgorde. Het leerlingtotaal
-- krijgt de aanduiding 'AT'

declare deCursor cursor local for
select distinct vakcode,volgnummer
  from leraars..alleKlasVakcodes(@klas )
  order by volgNummer

declare @vak varchar(5)
declare @volgNr int
declare @vakNr int
declare @zin varchar(200)

open deCursor
set @vakNr = 1
fetch next from deCursor into @vak,@volgNr 
while (@@fetch_status=0) and (@vakNr < 20)
begin
  if @vakNr = 1 update @resultaten set v1 = @vak from @resultaten where klas=@klas
  if @vakNr = 2 update @resultaten set v2 = @vak from @resultaten where klas=@klas
  if @vakNr = 3 update @resultaten set v3 = @vak from @resultaten where klas=@klas
  if @vakNr = 4 update @resultaten set v4 = @vak from @resultaten where klas=@klas
  if @vakNr = 5 update @resultaten set v5 = @vak from @resultaten where klas=@klas
  if @vakNr = 6 update @resultaten set v6 = @vak from @resultaten where klas=@klas
  if @vakNr = 7 update @resultaten set v7 = @vak from @resultaten where klas=@klas
  if @vakNr = 8 update @resultaten set v8 = @vak from @resultaten where klas=@klas
  if @vakNr = 9 update @resultaten set v9 = @vak from @resultaten where klas=@klas
  if @vakNr = 10 update @resultaten set v10 = @vak from @resultaten where klas=@klas
  if @vakNr = 11 update @resultaten set v11 = @vak from @resultaten where klas=@klas
  if @vakNr = 12 update @resultaten set v12 = @vak from @resultaten where klas=@klas
  if @vakNr = 13 update @resultaten set v13 = @vak from @resultaten where klas=@klas
  if @vakNr = 14 update @resultaten set v14 = @vak from @resultaten where klas=@klas
  if @vakNr = 15 update @resultaten set v15 = @vak from @resultaten where klas=@klas
  if @vakNr = 16 update @resultaten set v16 = @vak from @resultaten where klas=@klas
  if @vakNr = 17 update @resultaten set v17 = @vak from @resultaten where klas=@klas
  if @vakNr = 18 update @resultaten set v18 = @vak from @resultaten where klas=@klas
  if @vakNr = 19 update @resultaten set v19 = @vak from @resultaten where klas=@klas
  set @vakNr = @vakNr + 1
  fetch next from deCursor into @vak,@volgNr
end
deallocate deCursor

update @resultaten set v20='AT'

--Aanvullen van de jaarcijfers

delete from @jaarcijfers

insert into @jaarcijfers(inschrijvingsNr,vak,DWprocent,EXprocent,TOTprocent)
select inschrijvingsNr,vak,
	case when DWprocent < 0 then null else DWprocent end,
	case when EXprocent < 0 then null else EXprocent end,
	case when TOTprocent < 0 then null else TOTprocent end
from r_jaarProcenten(@klas)

--Aanvullen van de leerlingtotalen
insert into @jaarcijfers(inschrijvingsNr,vak,DWprocent,EXprocent,TOTprocent)
select inschrijvingsNr,vak,
	case when DWprocent < 0 then null else DWprocent end,
	case when EXprocent < 0 then null else EXprocent end,
	case when TOTprocent < 0 then null else TOTprocent end
 from r_jaarLlnTotaal(@klas)

update @resultaten
set     DW1=m1.DWprocent,DW2=m2.DWprocent,DW3=m3.DWprocent,DW4=m4.DWprocent,DW5=m5.DWprocent,
	DW6=m6.DWprocent,DW7=m7.DWprocent,DW8=m8.DWprocent,DW9=m9.DWprocent,DW10=m10.DWprocent,
	DW11=m11.DWprocent,DW12=m12.DWprocent,DW13=m13.DWprocent,DW14=m14.DWprocent,DW15=m15.DWprocent,
	DW16=m16.DWprocent,DW17=m17.DWprocent,DW18=m18.DWprocent,DW19=m19.DWprocent,DW20=m20.DWprocent,
	EX1=m1.EXprocent,EX2=m2.EXprocent,EX3=m3.EXprocent,EX4=m4.EXprocent,EX5=m5.EXprocent,
	EX6=m6.EXprocent,EX7=m7.EXprocent,EX8=m8.EXprocent,EX9=m9.EXprocent,EX10=m10.EXprocent,
	EX11=m11.EXprocent,EX12=m12.EXprocent,EX13=m13.EXprocent,EX14=m14.EXprocent,EX15=m15.EXprocent,
	EX16=m16.EXprocent,EX17=m17.EXprocent,EX18=m18.EXprocent,EX19=m19.EXprocent,EX20=m20.EXprocent,
	TOT1=m1.TOTprocent,TOT2=m2.TOTprocent,TOT3=m3.TOTprocent,TOT4=m4.TOTprocent,TOT5=m5.TOTprocent,
	TOT6=m6.TOTprocent,TOT7=m7.TOTprocent,TOT8=m8.TOTprocent,TOT9=m9.TOTprocent,TOT10=m10.TOTprocent,
	TOT11=m11.TOTprocent,TOT12=m12.TOTprocent,TOT13=m13.TOTprocent,TOT14=m14.TOTprocent,TOT15=m15.TOTprocent,
	TOT16=m16.TOTprocent,TOT17=m17.TOTprocent,TOT18=m18.TOTprocent,TOT19=m19.TOTprocent,TOT20=m20.TOTprocent
from @resultaten as r
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m1
	on m1.inschrijvingsNr = r.inschrijvingsNr
	and m1.vak = r.v1
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m2
	on m2.inschrijvingsNr = r.inschrijvingsNr
	and m2.vak = r.v2
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m3
	on m3.inschrijvingsNr = r.inschrijvingsNr
	and m3.vak = r.v3
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m4
	on m4.inschrijvingsNr = r.inschrijvingsNr
	and m4.vak = r.v4
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m5
	on m5.inschrijvingsNr = r.inschrijvingsNr
	and m5.vak = r.v5
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m6
	on m6.inschrijvingsNr = r.inschrijvingsNr
	and m6.vak = r.v6
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m7
	on m7.inschrijvingsNr = r.inschrijvingsNr
	and m7.vak = r.v7
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m8
	on m8.inschrijvingsNr = r.inschrijvingsNr
	and m8.vak = r.v8
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m9
	on m9.inschrijvingsNr = r.inschrijvingsNr
	and m9.vak = r.v9
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m10
	on m10.inschrijvingsNr = r.inschrijvingsNr
	and m10.vak = r.v10
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m11
	on m11.inschrijvingsNr = r.inschrijvingsNr
	and m11.vak = r.v11
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m12
	on m12.inschrijvingsNr = r.inschrijvingsNr
	and m12.vak = r.v12
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m13
	on m13.inschrijvingsNr = r.inschrijvingsNr
	and m13.vak = r.v13
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m14
	on m14.inschrijvingsNr = r.inschrijvingsNr
	and m14.vak = r.v14
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m15
	on m15.inschrijvingsNr = r.inschrijvingsNr
	and m15.vak = r.v15
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m16
	on m16.inschrijvingsNr = r.inschrijvingsNr
	and m16.vak = r.v16
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m17
	on m17.inschrijvingsNr = r.inschrijvingsNr
	and m17.vak = r.v17
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m18
	on m18.inschrijvingsNr = r.inschrijvingsNr
	and m18.vak = r.v18
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m19
	on m19.inschrijvingsNr = r.inschrijvingsNr
	and m19.vak = r.v19
  left join (select inschrijvingsNr,DWprocent,EXprocent,TOTprocent,vak from @jaarcijfers) as m20
	on m20.inschrijvingsNr = r.inschrijvingsNr
	and m20.vak = r.v20
where r.klas=@klas

fetch next from KlasCursor into @klas
  end  
close KlasCursor
deallocate KlasCursor

return 
end